<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Library (computing)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Library_(computing)"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Library_computing rootpage-Library_computing skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Library (computing)</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">"Software library" redirects here; not to be confused with <a href="Library_software" class="mw-redirect" title="Library software">library software</a>.</div>
<div role="note" class="hatnote navigation-not-searchable">This article is about a software development concept. For a repository of digital assets, see <a href="Digital_library" title="Digital library">Digital library</a>.</div>
<p class="mw-empty-elt">
</p>
<p>In <a href="Computing" title="Computing">computing</a>, a <b>library</b> is a collection of <a href="System_resource" title="System resource">resources</a> that can be used during <a href="Software_development" title="Software development">software development</a> to implement a <a href="Computer_program" title="Computer program">computer program</a>. Commonly, a library consists of <a href="Executable" title="Executable">executable</a> code such as <a href="Compiled" class="mw-redirect" title="Compiled">compiled</a> <a href="Function_(computer_science)" class="mw-redirect" title="Function (computer science)">functions</a> and <a href="Class_(computer_programming)" title="Class (computer programming)">classes</a>, or a library can be a collection of <a href="Source_code" title="Source code">source code</a>. A resource library may contain data such as <a href="Image" title="Image">images</a> and <a href="Text_string" class="mw-redirect" title="Text string">text</a>.
</p><p>A library can be used by multiple, independent consumers (programs and other libraries). This differs from resources defined in a program which can usually only be used by that program. When a consumer uses a library resource, it gains the value of the library without having to implement it itself. Libraries encourage <a href="Software_reuse" class="mw-redirect" title="Software reuse">software reuse</a> in a <a href="Modular_programming" title="Modular programming">modular</a> fashion. Libraries can use other libraries resulting in a hierarchy of libraries in a program.
</p><p>When writing code that uses a library, a <a href="Programmer" title="Programmer">programmer</a> only needs to know how to use it – not its internal details. For example, a program could use a library that <a href="Abstraction_(computer_science)" title="Abstraction (computer science)">abstracts</a> a complicated <a href="System_call" title="System call">system call</a> so that the programmer can use the system feature without spending time to learn the intricacies of the system function.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>The idea of a computer library dates back to the first computers created by <a href="Charles_Babbage" title="Charles Babbage">Charles Babbage</a>. An 1888 paper on his <a href="Analytical_Engine" class="mw-redirect" title="Analytical Engine">Analytical Engine</a> suggested that computer operations could be punched on separate cards from numerical input. If these operation punch cards were saved for reuse then "by degrees the engine would have a library of its own."<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p>
<p>In 1947 <a href="Herman_Goldstine" title="Herman Goldstine">Goldstine</a> and <a href="John_von_Neumann" title="John von Neumann">von Neumann</a> speculated that it would be useful to create a "library" of <a href="Subroutine" class="mw-redirect" title="Subroutine">subroutines</a> for their work on the <a href="IAS_machine" title="IAS machine">IAS machine</a>, an early computer that was not yet operational at that time.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> They envisioned a physical library of <a href="Magnetic_wire_recording" class="mw-redirect" title="Magnetic wire recording">magnetic wire recordings</a>, with each wire storing reusable computer code.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>Inspired by von Neumann, <a href="Maurice_Wilkes" title="Maurice Wilkes">Wilkes</a> and his team constructed <a href="EDSAC" title="EDSAC">EDSAC</a>. A <a href="Filing_cabinet" title="Filing cabinet">filing cabinet</a> of <a href="Punched_tape" title="Punched tape">punched tape</a> held the subroutine library for this computer.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Programs for EDSAC consisted of a main program and a sequence of subroutines copied from the subroutine library.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> In 1951 the team published the first textbook on programming, <i><a href="The_Preparation_of_Programs_for_an_Electronic_Digital_Computer" title="The Preparation of Programs for an Electronic Digital Computer">The Preparation of Programs for an Electronic Digital Computer</a></i>, which detailed the creation and the purpose of the library.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p><a href="COBOL" title="COBOL">COBOL</a> included "primitive capabilities for a library system" in 1959,<sup id="cite_ref-Wexelblat_1981_247_7-0" class="reference"><a href="#cite_note-Wexelblat_1981_247-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> but <a href="Jean_E._Sammet" title="Jean E. Sammet">Jean Sammet</a> described them as "inadequate library facilities" in retrospect.<sup id="cite_ref-Wexelblat_1981_258_8-0" class="reference"><a href="#cite_note-Wexelblat_1981_258-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p><p><a href="JOVIAL" title="JOVIAL">JOVIAL</a> has a Communication Pool (COMPOOL), roughly a library of header files.
</p><p>Another major contributor to the modern library concept came in the form of the <a href="Subprogram" class="mw-redirect" title="Subprogram">subprogram</a> innovation of <a href="FORTRAN" class="mw-redirect" title="FORTRAN">FORTRAN</a>. FORTRAN subprograms can be compiled independently of each other, but the compiler lacked a <a href="Linker_(computing)" title="Linker (computing)">linker</a>. So prior to the introduction of modules in Fortran-90, <a href="Type_checking" class="mw-redirect" title="Type checking">type checking</a> between FORTRAN<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>NB 1<span class="cite-bracket">]</span></a></sup> subprograms was impossible.<sup id="cite_ref-Wilson_Clark_1988_126_10-0" class="reference"><a href="#cite_note-Wilson_Clark_1988_126-10"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p><p>By the mid 1960s, copy and macro libraries for assemblers were common. Starting with the popularity of the <a href="IBM_System/360" title="IBM System/360">IBM System/360</a>, libraries containing other types of text elements, e.g., system parameters, also became common.
</p><p>In <a href="OS/360_and_successors" title="OS/360 and successors">IBM's OS/360 and its successors</a> this is called a <a href="Data_set_(IBM_mainframe)#Partitioned_datasets" title="Data set (IBM mainframe)">partitioned data set</a>.
</p><p>The first <a href="Object-oriented_programming" title="Object-oriented programming">object-oriented programming</a> language, <a href="Simula" title="Simula">Simula</a>, developed in 1965, supported adding <a href="Class_(computer_science)" class="mw-redirect" title="Class (computer science)">classes</a> to libraries via its compiler.<sup id="cite_ref-Wilson_Clark_1988_52_11-0" class="reference"><a href="#cite_note-Wilson_Clark_1988_52-11"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Wexelblat_1981_716_12-0" class="reference"><a href="#cite_note-Wexelblat_1981_716-12"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Linking">Linking</h2></div>
<p>The <i>linking</i> (or <i>binding</i>) process resolves references known as <i>symbols</i> (or <i>links</i>) by searching for them in various locations including configured libraries. If a <a href="Linker_(computing)" title="Linker (computing)">linker</a> (or binder) does not find a symbol, then it fails, but multiple matches may or may not cause failure.
</p><p><i>Static linking</i> is linking at <a href="Link_time" title="Link time">build time</a>, such that the library executable code is included in the program. <i>Dynamic linking</i> is linking at <a href="Runtime_(program_lifecycle_phase)" class="mw-redirect" title="Runtime (program lifecycle phase)">run time</a>; it involves building the program with information that supports run-time linking to a dynamic link library (DLL). For dynamic linking, a compatible DLL file must be available to the program at run time, but for static linking, the program is standalone.
</p><p><i>Smart linking</i> is performed by a build tool that excludes unused code in the linking process. For example, a program that only uses integers for arithmetic, or does no arithmetic operations at all, can exclude floating-point library routines. This can lead to smaller program file size and reduced memory usage.
</p>
<div class="mw-heading mw-heading2"><h2 id="Relocation">Relocation</h2></div>
<p>Some references in a program or library module are stored in a relative or symbolic form which cannot be resolved until all code and libraries are assigned final static addresses. <a href="Relocation_(computer_science)" class="mw-redirect" title="Relocation (computer science)">Relocation</a> is the process of adjusting these references, and is done either by the linker or the <a href="Loader_(computing)" title="Loader (computing)">loader</a>. In general, relocation cannot be done to individual libraries themselves because the addresses in memory may vary depending on the program using them and other libraries they are combined with. <a href="Position-independent_code" title="Position-independent code">Position-independent code</a> avoids references to absolute addresses and therefore does not require relocation.
</p>
<div class="mw-heading mw-heading2"><h2 id="Categories">Categories</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Executable">Executable</h3></div>
<p>An executable library consists of code that has been converted from source code into <a href="Machine_code" title="Machine code">machine code</a> or an intermediate form such as <a href="Bytecode" title="Bytecode">bytecode</a>. A linker allows for using library objects by associating each reference with an address at which the object is located. For example, in <a href="C_(programming_language)" title="C (programming language)">C</a>, a library function is invoked via C's normal function call <a href="Syntax_(programming_languages)" title="Syntax (programming languages)">syntax</a> and <a href="Semantics_(computer_science)" title="Semantics (computer science)">semantics</a>.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p><p>A variant is a library containing compiled code (object code in IBM's nomenclature) in a form that cannot be loaded by the OS but that can be read by the linker.
</p>
<div class="mw-heading mw-heading3"><h3 id="Static">Static</h3></div>
<p>A <a href="Static_library" title="Static library">static library</a> is an executable library that is linked into a program at build-time by a linker (or whatever the build tool is called that does linking).<sup id="cite_ref-Static_Libraries_14-0" class="reference"><a href="#cite_note-Static_Libraries-14"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> This process, and the resulting stand-alone file, is known as a <a href="Static_build" title="Static build">static build</a> of the program. A static build may not need any further <a href="Relocation_(computer_science)" class="mw-redirect" title="Relocation (computer science)">relocation</a> if <a href="Virtual_memory" title="Virtual memory">virtual memory</a> is used and no <a href="Address_space_layout_randomization" title="Address space layout randomization">address space layout randomization</a> is desired.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</p><p>A static library is sometimes called an <i>archive</i> on Unix-like systems.
</p>
<div class="mw-heading mw-heading3"><h3 id="Dynamic">Dynamic</h3></div>
<p>A <a href="Dynamic_library" title="Dynamic library">dynamic library</a> is linked when the program is run – either at <a href="Load-time" class="mw-redirect" title="Load-time">load-time</a> or <a href="Runtime_(program_lifecycle_phase)" class="mw-redirect" title="Runtime (program lifecycle phase)">runtime</a>. The dynamic library was intended after the static library to support additional <a href="Software_deployment" title="Software deployment">software deployment</a> flexibility.
</p>
<div class="mw-heading mw-heading3"><h3 id="Sources">Sources</h3></div>
<p>A source library consists of source code; not compiled code.
</p>
<div class="mw-heading mw-heading3"><h3 id="Shared">Shared</h3></div>
<p>A <a href="Shared_library" title="Shared library">shared library</a> is a library that contains <a href="Executable_code" class="mw-redirect" title="Executable code">executable code</a> designed to be used by multiple <a href="Computer_program" title="Computer program">computer programs</a> or other libraries at <a href="Runtime_(program_lifecycle_phase)" class="mw-redirect" title="Runtime (program lifecycle phase)">runtime</a>, with only one copy of that code in memory, shared by all programs using the code.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Object">Object</h3></div>
<p>Although generally an obsolete technology today, an object library exposes resources for <a href="Object-oriented_programming" title="Object-oriented programming">object-oriented programming</a> (OOP) and a distributed object is a remote object library. Examples include: <a href="Component_Object_Model" title="Component Object Model">COM</a>/DCOM, <a href="System_Object_Model" class="mw-redirect" title="System Object Model">SOM</a>/DSOM, <a href="Distributed_Objects_Everywhere" title="Distributed Objects Everywhere">DOE</a>, <a href="Portable_Distributed_Objects" title="Portable Distributed Objects">PDO</a> and various <a href="CORBA" class="mw-redirect" title="CORBA">CORBA</a>-based systems.
</p><p>The object library technology was developed since as OOP became popular, it became apparent that OOP runtime binding required information than contemporary libraries did not provide. In addition to the names and entry points of the code located within, due to inheritance, OOP binding also requires a list of dependencies – since the full definition of a method may be in different places. Further, this requires more than listing that one library requires the services of another. In OOP, the libraries themselves may not be known at <a href="Compile_time" title="Compile time">compile time</a>, and vary from system to system.
</p><p>The remote object technology was developed in parallel to support multi-tier programs with a <a href="User_interface" title="User interface">user interface</a> application running on a <a href="Personal_computer" title="Personal computer">personal computer</a> (PC) using services of a <a href="Mainframe_computer" title="Mainframe computer">mainframe</a> or <a href="Minicomputer" title="Minicomputer">minicomputer</a> such as data storage and processing. For instance, a program on a PC would send messages to a minicomputer via <a href="Remote_procedure_call" title="Remote procedure call">remote procedure call</a> (RPC) to retrieve relatively small samples from a relatively large dataset. In response, distributed object technology was developed.
</p>
<div class="mw-heading mw-heading3"><h3 id="Class">Class</h3></div>
<p>A class library contains <a href="Class_(computer_science)" class="mw-redirect" title="Class (computer science)">classes</a> that can be used to create <a href="Object_(computer_science)" title="Object (computer science)">objects</a>. In <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, for example, classes are contained in <a href="Jar_(file_format)" class="mw-redirect" title="Jar (file format)">JAR files</a> and objects are created at runtime from the classes. However, in <a href="Smalltalk" title="Smalltalk">Smalltalk</a>, a class library is the starting point for a <a href="System_image" title="System image">system image</a> that includes the entire state of the environment, classes and all instantiated objects. Most class libraries are stored in a <a href="Package_repository" class="mw-redirect" title="Package repository">package repository</a> (such as Maven Central for Java). Client code explicitly specifies dependencies to external libraries in build configuration files (such as a Maven Pom in Java).
</p>
<div class="mw-heading mw-heading3"><h3 id="Remote">Remote</h3></div>
<p>A remote library runs on another computer and its assets are accessed via <a href="Remote_procedure_call" title="Remote procedure call">remote procedure call</a> (RPC) over a network. This <a href="Distributed_computing" title="Distributed computing">distributed architecture</a> allows for minimizing installation of the library and support for it on each consuming system and ensuring consistent versioning. A significant downside is that each library call entails significantly more overhead than for a local library.
</p>
<div class="mw-heading mw-heading3"><h3 id="Runtime">Runtime</h3></div>
<p>A <a href="Runtime_library" title="Runtime library">runtime library</a> provides access to the <a href="Runtime_environment" class="mw-redirect" title="Runtime environment">runtime environment</a> that is available to a program – tailored to the host <a href="Computer_platform" class="mw-redirect" title="Computer platform">platform</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Language_standard">Language standard</h3></div>
<p>Many modern <a href="Programming_languages" class="mw-redirect" title="Programming languages">programming languages</a> specify a <a href="Standard_library" title="Standard library">standard library</a> that provides a base level of functionality for the language environment.
</p>
<div class="mw-heading mw-heading3"><h3 id="Code_generation">Code generation</h3></div>
<p>A code generation library has a high-level <a href="Application_Programming_Interface" class="mw-redirect" title="Application Programming Interface">API</a> generating or transforming <a href="Byte_code" class="mw-redirect" title="Byte code">byte code</a> for <a href="Java_(programming_language)" title="Java (programming language)">Java</a>. They are used by <a href="Aspect-oriented_programming" title="Aspect-oriented programming">aspect-oriented programming</a>, some data access frameworks, and for testing to generate dynamic proxy objects. They also are used to intercept field access.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="File_naming">File naming</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Unix-like">Unix-like</h3></div>
<p>On most modern <a href="Unix-like" title="Unix-like">Unix-like</a> systems, library files are stored in directories such as <code>/lib</code>, <code>/usr/lib</code> and <code>/usr/local/lib</code>. A filename typically starts with <code>lib</code>, and ends with <code>.a</code> for a static library (<a href="Ar_(file_format)" class="mw-redirect" title="Ar (file format)">archive</a>) or <code>.so</code> for a shared object (dynamically linked library). For example, <code>libfoo.a</code> and <code>libfoo.so</code>.
</p><p>Often, <a href="Symbolic_link" title="Symbolic link">symbolic link</a> files are used to manage versioning of a library by providing a link file named without a version that links to a file named with a version. For example, <code>libfoo.so.2</code> might be version 2 of library <i>foo</i> and a link file named <code>libfoo.so</code> provides a version independent name to that file that programs link to. The link file could be changed to a refer to a version 3 (<code>libfoo.so.3</code>) such that consuming programs will then use version 3 without having to change the program.
</p><p>Files with extension <code>.la</code> are <a href="Libtool" class="mw-redirect" title="Libtool">libtool</a> archives; not usable by the system.
</p>
<div class="mw-heading mw-heading3"><h3 id="macOS">macOS</h3></div>
<div role="note" class="hatnote navigation-not-searchable">See also: <a href="Dynamic_linker#macOS_and_iOS" title="Dynamic linker">Dynamic linker § macOS and iOS</a></div>
<p>The <a href="MacOS" title="MacOS">macOS</a> system inherits static library conventions from <a href="BSD" class="mw-redirect" title="BSD">BSD</a>, with the library stored in a <code>.a</code> file. It uses either <code>.so</code> or <code>.dylib</code> for dynamic libraries. Most libraries in macOS, however, consist of "frameworks", placed inside special directories called "<a href="Bundle_(macOS)" title="Bundle (macOS)">bundles</a>" which wrap the library's required files and metadata. For example, a framework called <code>Abc</code> would be implemented in a bundle called <code>Abc.framework</code>, with <code>Abc.framework/Abc</code> being either the dynamically linked library file or a symlink to the dynamically linked library file in <code>Abc.framework/Versions/Current/Abc</code>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Windows">Windows</h3></div>
<p>Often, a <a href="Microsoft_Windows" title="Microsoft Windows">Windows</a> <a href="Dynamic-link_library" title="Dynamic-link library">dynamic-link library</a> (DLL) has the file extension <code>.dll</code>,<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> although sometimes different extensions are used to indicate general content, e.g. <code>.ocx</code> for a <a href="Object_Linking_and_Embedding" title="Object Linking and Embedding">OLE</a> library.
</p><p>A <code>.lib</code> file can be either a static library or contain the information needed to build an application that consumes the associated DLL. In the latter case, the associated DLL file must be present at runtime.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Code_reuse" title="Code reuse">Code reuse</a> – Using existing code in new software</li>
<li><a href="Object_file" title="Object file">Object file</a> – File containing relocatable format machine code</li>
<li><a href="Plug-in_(computing)" title="Plug-in (computing)">Plug-in</a> – Software component that extends the functionality of existing software</li>
<li><a href="Prelink" title="Prelink">Prelink</a>, also known as prebinding</li>
<li><a href="Runtime_library" title="Runtime library">Runtime library</a> – Access to a program's runtime environment</li>
<li><a href="Visual_Component_Library" title="Visual Component Library">Visual Component Library</a> – Object Pascal framework for Windows (VCL)</li>
<li><a href="Component_Library_for_Cross_Platform" title="Component Library for Cross Platform">Component Library for Cross Platform</a> (CLX)</li>
<li><a href="C_standard_library" title="C standard library">C standard library</a> – Standard library for the C programming language</li>
<li><a href="Java_Class_Library" title="Java Class Library">Java Class Library</a> – Core Java libraries</li>
<li><a href="Framework_Class_Library" title="Framework Class Library">Framework Class Library</a> – Standard library of Microsoft's .NET Framework</li>
<li><a href="Generic_programming" title="Generic programming">Generic programming</a> – Style of computer programming (used by the <a href="C%2B%2B_Standard_Library" title="C++ Standard Library">C++ Standard Library</a>)</li>
<li><a href="Soname" title="Soname">soname</a> – Field of data in a shared object file</li>
<li><a href="Method_stub" title="Method stub">Method stub</a> – Short and simple version of a method</li>
<li><a href="List_of_open_source_code_libraries" class="mw-redirect" title="List of open source code libraries">List of open source code libraries</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text">It was possible earlier between, e.g., Ada subprograms.</span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFBabbage1888" class="citation journal cs1">Babbage, H. P. (1888-09-12). <a rel="nofollow" class="external text" href="https://www.fourmilab.ch/babbage/hpb.html">"The Analytical Engine"</a>. <i>Proceedings of the British Association</i>. Bath.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFGoldstine2008" class="citation book cs1">Goldstine, Herman H. (2008-12-31). <a rel="nofollow" class="external text" href="https://dx.doi.org/10.1515/9781400820139"><i>The Computer from Pascal to von Neumann</i></a>. Princeton: Princeton University Press. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1515%2F9781400820139">10.1515/9781400820139</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-4008-2013-9</bdi>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFGoldstinevon_Neumann1947" class="citation report cs1"><a href="Herman_Goldstine" title="Herman Goldstine">Goldstine, Herman</a>; <a href="John_von_Neumann" title="John von Neumann">von Neumann, John</a> (1947). Planning and coding of problems for an electronic computing instrument (Report). Institute for Advanced Study. pp. 3, <span class="nowrap">21–</span>22. <a href="OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/26239859">26239859</a>. <q>it will probably be very important to develop an extensive "library" of subroutines</q></cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFWilkes1951" class="citation conference cs1">Wilkes, M. V. (1951). <a rel="nofollow" class="external text" href="https://dx.doi.org/10.1109/afips.1951.13">"The EDSAC Computer"</a>. <i>1951 International Workshop on Managing Requirements Knowledge</i>. 1951 International Workshop on Managing Requirements Knowledge. IEEE. p. 79. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2Fafips.1951.13">10.1109/afips.1951.13</a>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFCampbell-Kelly2011" class="citation journal cs1">Campbell-Kelly, Martin (September 2011). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://cacm.acm.org/magazines/2011/9/122802-in-praise-of-wilkes-wheeler-and-gill/fulltext">"In Praise of 'Wilkes, Wheeler, and Gill'"</a></span>. <i>Communications of the ACM</i>. <b>54</b> (9): <span class="nowrap">25–</span>27. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F1995376.1995386">10.1145/1995376.1995386</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:20261972">20261972</a>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFWilkesWheelerGill1951" class="citation book cs1"><a href="Maurice_Wilkes" title="Maurice Wilkes">Wilkes, Maurice</a>; <a href="David_Wheeler_(computer_scientist)" title="David Wheeler (computer scientist)">Wheeler, David</a>; <a href="Stanley_Gill" title="Stanley Gill">Gill, Stanley</a> (1951). <a rel="nofollow" class="external text" href="https://archive.org/details/programsforelect00wilk/page/80/mode/2up?q=library"><i>The Preparation of Programs for an Electronic Digital Computer</i></a>. Addison-Wesley. pp. 45, <span class="nowrap">80–</span>91, 100. <a href="OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/641145988">641145988</a>.</cite></span>
</li>
<li id="cite_note-Wexelblat_1981_247-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-Wexelblat_1981_247_7-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFWexelblat1981" class="citation book cs1">Wexelblat, Richard (1981). <a rel="nofollow" class="external text" href="https://archive.org/details/historyofprogram0000hist/page/274"><i>History of Programming Languages</i></a>. ACM Monograph Series. New York, NY: Academic Press (A subsidiary of <a href="Harcourt_Brace" class="mw-redirect" title="Harcourt Brace">Harcourt Brace</a>). p. <a rel="nofollow" class="external text" href="https://archive.org/details/historyofprogram0000hist/page/274">274</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-12-745040-8</bdi>.</cite></span>
</li>
<li id="cite_note-Wexelblat_1981_258-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-Wexelblat_1981_258_8-0">^</a></b></span> <span class="reference-text">Wexelblat, <i>op. cit.</i>, p. 258</span>
</li>
<li id="cite_note-Wilson_Clark_1988_126-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-Wilson_Clark_1988_126_10-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFWilsonClark1988" class="citation book cs1">Wilson, Leslie B.; Clark, Robert G. (1988). <i>Comparative Programming Languages</i>. Wokingham, England: Addison-Wesley. p. 126. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-201-18483-4</bdi>.</cite></span>
</li>
<li id="cite_note-Wilson_Clark_1988_52-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-Wilson_Clark_1988_52_11-0">^</a></b></span> <span class="reference-text">Wilson and Clark, <i>op. cit.</i>, p. 52</span>
</li>
<li id="cite_note-Wexelblat_1981_716-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-Wexelblat_1981_716_12-0">^</a></b></span> <span class="reference-text">Wexelblat, <i>op. cit.</i>, p. 716</span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite id="CITEREFDeshpande2013" class="citation thesis cs1">Deshpande, Prasad (2013). <i>Metamorphic Detection Using Function Call Graph Analysis</i> (Thesis). San Jose State University Library. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.31979%2Fetd.t9xm-ahsc">10.31979/etd.t9xm-ahsc</a></span>.</cite></span>
</li>
<li id="cite_note-Static_Libraries-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-Static_Libraries_14-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://tldp.org/HOWTO/Program-Library-HOWTO/static-libraries.html">"Static Libraries"</a>. TLDP. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130703011904/http://tldp.org/HOWTO/Program-Library-HOWTO/static-libraries.html">Archived</a> from the original on 2013-07-03<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-10-03</span></span>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite id="CITEREFKaminsky2008" class="citation book cs1">Kaminsky, Dan (2008). <a rel="nofollow" class="external text" href="https://dx.doi.org/10.1016/b978-1-59749-237-9.00003-x">"Chapter 3 - Portable Executable and Executable and Linking Formats"</a>. <i>Reverse Engineering Code with IDA Pro</i>. Elsevier. pp. <span class="nowrap">37–</span>66. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fb978-1-59749-237-9.00003-x">10.1016/b978-1-59749-237-9.00003-x</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-59749-237-9</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-05-27</span></span>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite id="CITEREFCollbergHartmanBabuUdupa2003" class="citation conference cs1">Collberg, Christian; Hartman, John H.; Babu, Sridivya; Udupa, Sharath K. (2003). <a rel="nofollow" class="external text" href="http://usenix.org/legacy/publications/library/proceedings/usenix05/tech/general/full_papers/collberg/collberg_html/main.html"><i>SLINKY: Static Linking Reloaded</i></a>. USENIX '05. Department of Computer Science, <a href="University_of_Arizona" title="University of Arizona">University of Arizona</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160323214637/https://www.usenix.org/legacy/publications/library/proceedings/usenix05/tech/general/full_papers/collberg/collberg_html/main.html">Archived</a> from the original on 2016-03-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-03-17</span></span>.</cite></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><cite id="CITEREFLevine2000" class="citation book cs1">Levine, John R. (2000). "9. Shared Libraries". <i>Linkers and Loaders</i>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>1-55860-496-0</bdi>.</cite></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="http://www.bitsavers.org/pdf/att/unix/System_V_386_Release_3.2/UNIX_System_V_386_Release_3.2_Programmers_Guide_Vol1_1989.pdf"><i>UNIX System V/386 Release 3.2 Programmers Guide, Vol. 1</i></a> <span class="cs1-format">(PDF)</span>. Prentice Hall. 1989. p. 8-2. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-13-944877-2</bdi>.</cite></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.cs.cornell.edu/courses/cs414/2001FA/sharedlib.pdf">"Shared Libraries in SunOS"</a> <span class="cs1-format">(PDF)</span>. pp. 1, 3.</cite></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://sourceforge.net/projects/cglib/">"Code Generation Library"</a>. <a href="Source_Forge" class="mw-redirect" title="Source Forge">Source Forge</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100112154306/http://sourceforge.net/projects/cglib/">Archived</a> from the original on 2010-01-12<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-03-03</span></span>. <q>Byte Code Generation Library is high level API to generate and transform JAVA byte code. It is used by AOP, testing, data access frameworks to generate dynamic proxy objects and intercept field access.</q></cite></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text">
<cite id="CITEREFBresnahanBlum2015" class="citation book cs1">Bresnahan, Christine; Blum, Richard (2015-04-27). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=jf3zBgAAQBAJ"><i>LPIC-1 Linux Professional Institute Certification Study Guide: Exam 101-400 and Exam 102-400</i></a>. John Wiley & Sons (published 2015). p. 82. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9781119021186</bdi>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150924234210/https://books.google.com/books?id=jf3zBgAAQBAJ">Archived</a> from the original on 2015-09-24<span class="reference-accessdate">. Retrieved <span class="nowrap">2015-09-03</span></span>. <q>Linux shared libraries are similar to the dynamic link libraries (DLLs) of Windows. Windows DLLs are usually identified by <code>.dll</code> filename extensions.</q></cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite id="CITEREFLevine2000" class="citation book cs1"><a href="John_R._Levine" title="John R. Levine">Levine, John R.</a> (2000) [October 1999]. "Chapter 9: Shared Libraries & Chapter 10: Dynamic Linking and Loading". <a rel="nofollow" class="external text" href="https://www.iecc.com/linker/"><i>Linkers and Loaders</i></a>. The Morgan Kaufmann Series in Software Engineering and Programming (1 ed.). San Francisco, USA: <a href="Morgan_Kaufmann" class="mw-redirect" title="Morgan Kaufmann">Morgan Kaufmann</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>1-55860-496-0</bdi>. <a href="OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/42413382">42413382</a>. <a rel="nofollow" class="external text" href="https://archive.today/20121205032107/http://www.iecc.com/linker/">Archived</a> from the original on 2012-12-05<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-01-12</span></span>.</cite> Code: <a rel="nofollow" class="external autonumber" href="https://archive.today/20200114225034/https://linker.iecc.com/code.html">[1]</a><a rel="nofollow" class="external autonumber" href="ftp://ftp.iecc.com/pub/linker/">[2]</a> Errata: <a rel="nofollow" class="external autonumber" href="https://linker.iecc.com/">[3]</a></li>
<li>Article <i><a rel="nofollow" class="external text" href="http://www.lurklurk.org/linkers/linkers.html">Beginner's Guide to Linkers</a></i> by David Drysdale</li>
<li>Article <i><a rel="nofollow" class="external text" href="http://objprelink.sourceforge.net/objprelink.html">Faster C++ program startups by improving runtime linking efficiency</a></i> by Léon Bottou and John Ryland</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20060628062553/http://www.enderunix.org/simsek/articles/libraries.pdf">How to Create Program Libraries</a> by Baris Simsek</li>
<li><a rel="nofollow" class="external text" href="https://sourceware.org/binutils/docs-2.30/bfd/index.html">BFD</a> - the Binary File Descriptor Library</li>
<li><a rel="nofollow" class="external text" href="http://lcsd05.cs.tamu.edu">1st Library-Centric Software Design Workshop LCSD'05</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190828045251/http://lcsd05.cs.tamu.edu/">Archived</a> 2019-08-28 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a> at OOPSLA'05</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20060618065018/http://lcsd.cs.tamu.edu/2006/">2nd Library-Centric Software Design Workshop LCSD'06</a> at OOPSLA'06</li>
<li><a rel="nofollow" class="external text" href="http://people.redhat.com/drepper/dsohowto.pdf">How to create shared library</a> by Ulrich Drepper (with much background info)</li>
<li><a rel="nofollow" class="external text" href="http://www.ibm.com/developerworks/linux/library/l-dynamic-libraries/">Anatomy of Linux dynamic libraries</a> at IBM.com</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Computer_science1050" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Computer_science1050" style="font-size:114%;margin:0 4em"><a href="Computer_science" title="Computer science">Computer science</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div>Note: This template roughly follows the 2012 <a href="ACM_Computing_Classification_System" title="ACM Computing Classification System">ACM Computing Classification System</a>.</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_hardware" title="Computer hardware">Hardware</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Printed_circuit_board" title="Printed circuit board">Printed circuit board</a></li>
<li><a href="Peripheral" title="Peripheral">Peripheral</a></li>
<li><a href="Integrated_circuit" title="Integrated circuit">Integrated circuit</a></li>
<li><a href="Very-large-scale_integration" title="Very-large-scale integration">Very-large-scale integration</a></li>
<li><a href="System_on_a_chip" title="System on a chip">System on a chip</a> (SoC)</li>
<li><a href="Green_computing" title="Green computing">Energy consumption</a> (green computing)</li>
<li><a href="Electronic_design_automation" title="Electronic design automation">Electronic design automation</a></li>
<li><a href="Hardware_acceleration" title="Hardware acceleration">Hardware acceleration</a></li>
<li><a href="Processor_(computing)" title="Processor (computing)">Processor</a></li>
<li><a href="List_of_computer_size_categories" title="List of computer size categories">Size</a> / <a href="Form_factor_(design)" title="Form factor (design)">Form</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Computer systems organization</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_architecture" title="Computer architecture">Computer architecture</a></li>
<li><a href="Computational_complexity" title="Computational complexity">Computational complexity</a></li>
<li><a href="Dependability" title="Dependability">Dependability</a></li>
<li><a href="Embedded_system" title="Embedded system">Embedded system</a></li>
<li><a href="Real-time_computing" title="Real-time computing">Real-time computing</a></li>
<li><a href="Cyber-physical_system" title="Cyber-physical system">Cyber-physical system</a></li>
<li><a href="Fault_tolerance" title="Fault tolerance">Fault tolerance</a></li>
<li><a href="Wireless_sensor_network" title="Wireless sensor network">Wireless sensor network</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_network" title="Computer network">Networks</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Network_architecture" title="Network architecture">Network architecture</a></li>
<li><a href="Communication_protocol" title="Communication protocol">Network protocol</a></li>
<li><a href="Networking_hardware" title="Networking hardware">Network components</a></li>
<li><a href="Network_scheduler" title="Network scheduler">Network scheduler</a></li>
<li><a href="Network_performance" title="Network performance">Network performance evaluation</a></li>
<li><a href="Network_service" title="Network service">Network service</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software organization</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Interpreter_(computing)" title="Interpreter (computing)">Interpreter</a></li>
<li><a href="Middleware" title="Middleware">Middleware</a></li>
<li><a href="Virtual_machine" title="Virtual machine">Virtual machine</a></li>
<li><a href="Operating_system" title="Operating system">Operating system</a></li>
<li><a href="Software_quality" title="Software quality">Software quality</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language_theory" title="Programming language theory">Software notations</a> and <a href="Programming_tool" title="Programming tool">tools</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Programming_paradigm" title="Programming paradigm">Programming paradigm</a></li>
<li><a href="Programming_language" title="Programming language">Programming language</a></li>
<li><a href="Compiler_construction" class="mw-redirect" title="Compiler construction">Compiler</a></li>
<li><a href="Domain-specific_language" title="Domain-specific language">Domain-specific language</a></li>
<li><a href="Modeling_language" title="Modeling language">Modeling language</a></li>
<li><a href="Software_framework" title="Software framework">Software framework</a></li>
<li><a href="Integrated_development_environment" title="Integrated development environment">Integrated development environment</a></li>
<li><a href="Software_configuration_management" title="Software configuration management">Software configuration management</a></li>
<li><a href="Software_repository" title="Software repository">Software repository</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Software_development" title="Software development">Software development</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Control_flow" title="Control flow">Control variable</a></li>
<li><a href="Software_development_process" title="Software development process">Software development process</a></li>
<li><a href="Requirements_analysis" title="Requirements analysis">Requirements analysis</a></li>
<li><a href="Software_design" title="Software design">Software design</a></li>
<li><a href="Software_construction" title="Software construction">Software construction</a></li>
<li><a href="Software_deployment" title="Software deployment">Software deployment</a></li>
<li><a href="Software_engineering" title="Software engineering">Software engineering</a></li>
<li><a href="Software_maintenance" title="Software maintenance">Software maintenance</a></li>
<li><a href="Programming_team" title="Programming team">Programming team</a></li>
<li><a href="Open-source_software" title="Open-source software">Open-source model</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Theory_of_computation" title="Theory of computation">Theory of computation</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Model_of_computation" title="Model of computation">Model of computation</a>
<ul><li><a href="Stochastic_computing" title="Stochastic computing">Stochastic</a></li></ul></li>
<li><a href="Formal_language" title="Formal language">Formal language</a></li>
<li><a href="Automata_theory" title="Automata theory">Automata theory</a></li>
<li><a href="Computability_theory" title="Computability theory">Computability theory</a></li>
<li><a href="Computational_complexity_theory" title="Computational complexity theory">Computational complexity theory</a></li>
<li><a href="Logic_in_computer_science" title="Logic in computer science">Logic</a></li>
<li><a href="Semantics_(computer_science)" title="Semantics (computer science)">Semantics</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Algorithm" title="Algorithm">Algorithms</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Algorithm_design" class="mw-redirect" title="Algorithm design">Algorithm design</a></li>
<li><a href="Analysis_of_algorithms" title="Analysis of algorithms">Analysis of algorithms</a></li>
<li><a href="Algorithmic_efficiency" title="Algorithmic efficiency">Algorithmic efficiency</a></li>
<li><a href="Randomized_algorithm" title="Randomized algorithm">Randomized algorithm</a></li>
<li><a href="Computational_geometry" title="Computational geometry">Computational geometry</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Mathematics of <a href="Computing" title="Computing">computing</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Discrete_mathematics" title="Discrete mathematics">Discrete mathematics</a></li>
<li><a href="Probability" title="Probability">Probability</a></li>
<li><a href="Statistics" title="Statistics">Statistics</a></li>
<li><a href="Mathematical_software" title="Mathematical software">Mathematical software</a></li>
<li><a href="Information_theory" title="Information theory">Information theory</a></li>
<li><a href="Mathematical_analysis" title="Mathematical analysis">Mathematical analysis</a></li>
<li><a href="Numerical_analysis" title="Numerical analysis">Numerical analysis</a></li>
<li><a href="Theoretical_computer_science" title="Theoretical computer science">Theoretical computer science</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Information_system" title="Information system">Information systems</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Database" title="Database">Database management system</a></li>
<li><a href="Computer_data_storage" title="Computer data storage">Information storage systems</a></li>
<li><a href="Enterprise_information_system" title="Enterprise information system">Enterprise information system</a></li>
<li><a href="Social_software" title="Social software">Social information systems</a></li>
<li><a href="Geographic_information_system" title="Geographic information system">Geographic information system</a></li>
<li><a href="Decision_support_system" title="Decision support system">Decision support system</a></li>
<li><a href="Industrial_process_control" title="Industrial process control">Process control system</a></li>
<li><a href="Multimedia_database" title="Multimedia database">Multimedia information system</a></li>
<li><a href="Data_mining" title="Data mining">Data mining</a></li>
<li><a href="Digital_library" title="Digital library">Digital library</a></li>
<li><a href="Computing_platform" title="Computing platform">Computing platform</a></li>
<li><a href="Digital_marketing" title="Digital marketing">Digital marketing</a></li>
<li><a href="World_Wide_Web" title="World Wide Web">World Wide Web</a></li>
<li><a href="Information_retrieval" title="Information retrieval">Information retrieval</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_security" title="Computer security">Security</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Cryptography" title="Cryptography">Cryptography</a></li>
<li><a href="Formal_methods" title="Formal methods">Formal methods</a></li>
<li><a href="Security_hacker" title="Security hacker">Security hacker</a></li>
<li><a href="Security_service_(telecommunication)" title="Security service (telecommunication)">Security services</a></li>
<li><a href="Intrusion_detection_system" title="Intrusion detection system">Intrusion detection system</a></li>
<li><a href="Hardware_security" title="Hardware security">Hardware security</a></li>
<li><a href="Network_security" title="Network security">Network security</a></li>
<li><a href="Information_security" title="Information security">Information security</a></li>
<li><a href="Application_security" title="Application security">Application security</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a class="external text external" href="https://en.wikipedia.org/wiki/Human-centered_computing">Human–centered computing</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Interaction_design" title="Interaction design">Interaction design</a></li>
<li><a href="Augmented_reality" title="Augmented reality">Augmented reality</a></li>
<li><a href="Virtual_reality" title="Virtual reality">Virtual reality</a></li>
<li><a href="Social_computing" title="Social computing">Social computing</a></li>
<li><a href="Ubiquitous_computing" title="Ubiquitous computing">Ubiquitous computing</a></li>
<li><a href="Visualization_(graphics)" title="Visualization (graphics)">Visualization</a></li>
<li><a href="Computer_accessibility" title="Computer accessibility">Accessibility</a></li>
<li><a href="Human%E2%80%93computer_interaction" title="Human–computer interaction">Human–computer interaction</a></li>
<li><a href="Mobile_computing" title="Mobile computing">Mobile computing</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Concurrency_(computer_science)" title="Concurrency (computer science)">Concurrency</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Concurrent_computing" title="Concurrent computing">Concurrent computing</a></li>
<li><a href="Parallel_computing" title="Parallel computing">Parallel computing</a></li>
<li><a href="Distributed_computing" title="Distributed computing">Distributed computing</a></li>
<li><a href="Multithreading_(computer_architecture)" title="Multithreading (computer architecture)">Multithreading</a></li>
<li><a href="Multiprocessing" title="Multiprocessing">Multiprocessing</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Artificial_intelligence" title="Artificial intelligence">Artificial intelligence</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Natural_language_processing" title="Natural language processing">Natural language processing</a></li>
<li><a href="Knowledge_representation_and_reasoning" title="Knowledge representation and reasoning">Knowledge representation and reasoning</a></li>
<li><a href="Computer_vision" title="Computer vision">Computer vision</a></li>
<li><a href="Automated_planning_and_scheduling" title="Automated planning and scheduling">Automated planning and scheduling</a></li>
<li><a href="Mathematical_optimization" title="Mathematical optimization">Search methodology</a></li>
<li><a href="Control_theory" title="Control theory">Control method</a></li>
<li><a href="Philosophy_of_artificial_intelligence" title="Philosophy of artificial intelligence">Philosophy of artificial intelligence</a></li>
<li><a href="Distributed_artificial_intelligence" title="Distributed artificial intelligence">Distributed artificial intelligence</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Machine_learning" title="Machine learning">Machine learning</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Supervised_learning" title="Supervised learning">Supervised learning</a></li>
<li><a href="Unsupervised_learning" title="Unsupervised learning">Unsupervised learning</a></li>
<li><a href="Reinforcement_learning" title="Reinforcement learning">Reinforcement learning</a></li>
<li><a href="Multi-task_learning" title="Multi-task learning">Multi-task learning</a></li>
<li><a href="Cross-validation_(statistics)" title="Cross-validation (statistics)">Cross-validation</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Computer_graphics" title="Computer graphics">Graphics</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Computer_animation" title="Computer animation">Animation</a></li>
<li><a href="Rendering_(computer_graphics)" title="Rendering (computer graphics)">Rendering</a></li>
<li><a href="Photograph_manipulation" title="Photograph manipulation">Photograph manipulation</a></li>
<li><a href="Graphics_processing_unit" title="Graphics processing unit">Graphics processing unit</a></li>
<li><a href="Image_compression" title="Image compression">Image compression</a></li>
<li><a href="Solid_modeling" title="Solid modeling">Solid modeling</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Applied computing</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Quantum_computing" title="Quantum computing">Quantum computing</a></li>
<li><a href="E-commerce" title="E-commerce">E-commerce</a></li>
<li><a href="Enterprise_software" title="Enterprise software">Enterprise software</a></li>
<li><a href="Computational_mathematics" title="Computational mathematics">Computational mathematics</a></li>
<li><a href="Computational_physics" title="Computational physics">Computational physics</a></li>
<li><a href="Computational_chemistry" title="Computational chemistry">Computational chemistry</a></li>
<li><a href="Computational_biology" title="Computational biology">Computational biology</a></li>
<li><a href="Computational_social_science" title="Computational social science">Computational social science</a></li>
<li><a href="Computational_engineering" title="Computational engineering">Computational engineering</a></li>
<li>Differentiable computing</li>
<li><a href="Health_informatics" title="Health informatics">Computational healthcare</a></li>
<li><a href="Digital_art" title="Digital art">Digital art</a></li>
<li><a href="Electronic_publishing" title="Electronic publishing">Electronic publishing</a></li>
<li><a href="Cyberwarfare" title="Cyberwarfare">Cyberwarfare</a></li>
<li><a href="Electronic_voting" title="Electronic voting">Electronic voting</a></li>
<li><a href="Video_game" title="Video game">Video games</a></li>
<li><a href="Word_processor" title="Word processor">Word processing</a></li>
<li><a href="Operations_research" title="Operations research">Operations research</a></li>
<li><a href="Educational_technology" title="Educational technology">Educational technology</a></li>
<li><a href="Document_management_system" title="Document management system">Document management</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li>
<li><span class="noviewer" typeof="mw:File"><span title="Outline"></span></span> <a href="Outline_of_computer_science" title="Outline of computer science">Outline</a></li>
<li><span class="noviewer" typeof="mw:File"><span></span></span> Glossaries</li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Application_binary_interface_(ABI)74" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Application_binary_interface_(ABI)74" style="font-size:114%;margin:0 4em"><a href="Application_binary_interface" title="Application binary interface">Application binary interface</a> (ABI)</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Parts,<br>conventions</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Data_structure_alignment" title="Data structure alignment">Alignment</a></li>
<li><a href="Calling_convention" title="Calling convention">Calling convention</a></li>
<li><a href="Call_stack" title="Call stack">Call stack</a></li>
<li>
<ul><li><a href="Static_library" title="Static library">static</a></li></ul></li>
<li><a href="Machine_code" title="Machine code">Machine code</a></li>
<li><a href="Memory_segmentation" title="Memory segmentation">Memory segmentation</a></li>
<li><a href="Name_mangling" title="Name mangling">Name mangling</a></li>
<li><a href="Object_code" title="Object code">Object code</a></li>
<li><a href="Opaque_pointer" title="Opaque pointer">Opaque pointer</a></li>
<li><a href="Position-independent_code" title="Position-independent code">Position-independent code</a></li>
<li><a href="Relocation_(computing)" title="Relocation (computing)">Relocation</a></li>
<li><a href="System_call" title="System call">System call</a></li>
<li><a href="Virtual_method_table" title="Virtual method table">Virtual method table</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related topics</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Binary-code_compatibility" title="Binary-code compatibility">Binary-code compatibility</a></li>
<li><a href="Foreign_function_interface" title="Foreign function interface">Foreign function interface</a></li>
<li><a href="Language_binding" title="Language binding">Language binding</a></li>
<li><a href="Linker_(computing)" title="Linker (computing)">Linker</a>
<ul><li><a href="Dynamic_linker" title="Dynamic linker">dynamic</a></li></ul></li>
<li><a href="Loader_(computing)" title="Loader (computing)">Loader</a></li>
<li><a href="Year_2038_problem" title="Year 2038 problem">Year 2038 problem</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Executable_and_object_file_formats118" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Executable_and_object_file_formats118" style="font-size:114%;margin:0 4em"><a href="Executable" title="Executable">Executable</a> and <a href="Object_file" title="Object file">object file</a> formats</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="A.out" title="A.out">a.out</a></li>
<li><a href="Arm_Image_Format" title="Arm Image Format">AIF</a></li>
<li><a href="COFF" title="COFF">COFF</a></li>
<li><a href="CMD_file_(CP/M)" title="CMD file (CP/M)">CMD</a></li>
<li><a href="COM_file" title="COM file">COM</a></li>
<li><a href="ECOFF" title="ECOFF">ECOFF</a></li>
<li><a href="Executable_and_Linkable_Format" title="Executable and Linkable Format">ELF</a></li>
<li><a href="GOFF" title="GOFF">GOFF</a></li>
<li><a href="Amiga_Hunk" title="Amiga Hunk">Hunk</a></li>
<li><a href="Mach-O" title="Mach-O">Mach-O</a></li>
<li><a href="DOS_MZ_executable" title="DOS MZ executable">MZ</a></li>
<li><a href="New_Executable" title="New Executable">NE</a></li>
<li><a href="Object_Module_Format_(Intel)" title="Object Module Format (Intel)">OMF</a></li>
<li><a href="OS/360_Object_File_Format" title="OS/360 Object File Format">OS/360</a></li>
<li><a href="Portable_Executable" title="Portable Executable">PE</a></li>
<li><a href="Preferred_Executable_Format" title="Preferred Executable Format">PEF</a></li>
<li><a href=".X_(Human68K)" class="mw-redirect" title=".X (Human68K)">X</a></li>
<li><a href="XCOFF" title="XCOFF">XCOFF</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow hlist" colspan="2"><div>
<ul><li><a href="Comparison_of_executable_file_formats" title="Comparison of executable file formats">Comparison of formats</a></li>
<li><a href=".exe" title=".exe">.exe</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1038841319">
/* start https://en.wikipedia.org/ */
.mw-parser-output .tooltip-dotted{border-bottom:1px dotted;cursor:help}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q188860#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata963" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q188860#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata963" style="font-size:114%;margin:0 4em">Authority control databases </div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">International</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.worldcat.org/fast/1745486">FAST</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4121521-7">Germany</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh2008001447">United States</a></span></li><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="knihovny (software)"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&local_base=aut&ccl_term=ica=ph170667&CON_LNG=ENG">Czech Republic</a></span></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987007542436505171">Israel</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-27" href="https://en.wikipedia.org/wiki/?title=Library_(computing)&oldid=1302806545">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>